/* ------------------------2021-08-26 封装uni-app请求----------------------------- */
import config from './config.js'

const request = (params, method) => {
	return new Promise(function(resolve, reject) {
		// 根据具体业务需求更改必要参数
		if (!config.baseUrl) {
			console.log('config.js 中参数配置不全')
			reject('config.js 中参数配置不全')
			return
		}
		uni.request({
			url: '/api' + params.url, // config.baseUrl
			data: params.data,
			method: method,
			header: {
				'Blade-Auth': uni.getStorageSync('token') || '',
				'Content-Type': 'application/json;charset=UTF-8',
				'Authorization': 'Basic c2FiZXI6c2FiZXJfc2VjcmV0',
				'Tenant-Id': uni.getStorageSync('tenantId') || '356137',
				...params.header
			},
			timeout: config.reqTimeOut,
			success(res) {
				// 成功回调
				if (res.statusCode === 200) {
					// 判断对象里是否有某个属性
					// console.log('返回的数据---', res)
					if (res.data.data != undefined && res.data.data.hasOwnProperty('token')) {
						uni.setStorageSync('token', res.data.data.token)
					}
					resolve(res.data)
				} else if (res.statusCode === 401) {
					uni.clearStorageSync() // 清空本地所有的缓存数据
					uni.reLaunch({
						url: '/pages/views/login/Login'
					})
				} else {
					let params = {
						code: res.data.code,
						data: res.data.data,
						msg: res.data.msg
					}
					resolve(params)
				}
			},
			fail(e) {
				console.log('complete1------------', e);
				uni.showModal({
					title: '温馨提示',
					content: '网络请求超时，请稍后再试！',
					confirmColor: '#3178FF',
					showCancel: false, // 是否显示取消按钮
					success: function(res) {
						if (res.confirm) {
							uni.clearStorageSync() // 清空本地所有的缓存数据
							uni.reLaunch({
								url: '/pages/views/login/Login'
							})
						}
					}
				})
			},
			complete(e) {
				// 无论成功或失败 只要请求完成的 回调
				console.log('complete------------', e);
			}
		})
	})
};

export default {
	async get(params) {
		return await request(params, 'get')
	},
	async post(params) {
		return await request(params, 'post')
	}
}